export function validateInteger(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const regex = /^[1-9]\d*$/; // 正则表达式：以非零数字开头，后面可以是任意数字
        if (!regex.test(value)) {
            callback(new Error('请输入正整数'));
        } else {
            callback();
        }
    }
}

export function validateProbeNum(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const regex = /^[1-9]\d*$/; // 正则表达式：以非零数字开头，后面可以是任意数字
        if (!regex.test(value)) {
            callback(new Error('请输入正整数'));
        } else if (value > 20) {
            callback(new Error('请输入0-20之间的数值'));
        } else {
            callback();
        }
    }
}


export function validateMac(rule, value, callback) {
    console.log("mac")
    console.log(value)
    const regex = /^[a-zA-Z0-9]{12}$/;// 任意12位数字或字符
    if (!regex.test(value)) {
        callback(new Error('请输入正确MAC'));
    }else {
        callback();
    }
}

export function validateMQTT(rule, value, callback) {
    console.log("rule",rule)
    const regex = /^[a-zA-Z0-9]{15}$/;// 任意12位数字或字符
    if (!regex.test(value)) {
        callback(new Error('请输入正确DTU_ID'));
    }else {
        callback();
    }
}
export function validateInteger2(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const regex = /^-?\d+$/; // 正则表达式：以非零数字开头，后面可以是任意数字
        if (!regex.test(value)) {
            callback(new Error('请输入有效的整数'));
        } else {
            callback();
        }
    }
}


export function validateFloat(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const floatValue = parseFloat(value);
        if (isNaN(floatValue)) {
            callback(new Error('请输入数字'));
        } else if (floatValue <= 0) {
            callback(new Error('请输入大于0的数字'));
        } else {
            callback();
        }
    }
}

export function validateLaunch(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const floatValue = parseFloat(value);
        if (isNaN(floatValue)) {
            callback(new Error('请输入数字'));
        } else {
            callback();
        }

        // else if (floatValue < 425 || floatValue > 435) {
        //     callback(new Error('请输入425 - 435之间数值'));
        // } else {
        //     callback();
        // }
    }
}

export function validateFloat63(rule, value, callback) {
    if (value === '') {
        callback();
    } else {
        const floatValue = parseFloat(value);
        if (isNaN(floatValue)) {
            callback(new Error('请输入数字'));
        } else if (floatValue <= 0) {
            callback(new Error('请输入大于0的数字'));
        } else if (floatValue > 63) {
            callback(new Error("请输入小于63的正整数"));
        } else {
            callback()
        }
    }
}

export function validateStringAndNumber(rule, value, callback) {
    // 使用正则表达式验证输入值是否只包含字符串和数字
    const pattern = /^[a-zA-Z0-9]+$/
    if (value && !pattern.test(value)) {
        callback(new Error('只能输入字符串和数字'))
    } else {
        callback()
    }
}


export function validateLength(rule, value, callback) {
    if (value.length < 6) {
        callback(new Error('最少输入6位'))
    } else if (value.length > 13) {
        callback(new Error('最多输入13位'))
    } else {
        callback()
    }
}


export function validateArray(rule, value, callback) {

    if (value === '') {
        callback();
    } else {
        // 尝试解析为数组
        try {
            const array = JSON.parse(value);

            // 判断是否为数组类型
            if (!Array.isArray(array)) {
                callback(new Error('请输入有效的数字数组'));
            }

            // 判断数组元素是否都是数字
            else if (!array.every(item => typeof item === 'number')) {
                callback(new Error('请输入有效的数字数组'));
            } else {
                callback()

            }

        } catch (error) {
            callback(new Error('请输入合法数字数组'));
        }
    }
}

export function validateEmail(rule, value, callback) {
    const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

    if (!value || regex.test(value)) {
        callback();
    } else {
        callback(new Error('请输入正确的邮箱格式'));
    }
}

export function validatePhone(rule, value, callback) {
    const regex = /^1[3456789]\d{9}$/;

    if (!value || regex.test(value)) {
        callback();
    } else {
        callback(new Error('请输入正确的手机号'));
    }
}


/**
 * 大于0的正整数
 */
export function validatePositiveInteger(rule, value, callback) {
    const regex = /^[1-9]\d*$/;

    if (!value || regex.test(value)) {
        callback();
    } else {
        callback(new Error('请输入大于0的正整数'));
    }
}
